import { swap, testSort, measureSort } from "hy-algokit";

export default function selectionSort(arr: number[]) {
  const n = arr.length;

  for (let i = 0; i < n - 1; i++) {
    // 记录末排序部分的最小值索引
    let minIndex = i;
    for (let j = i + 1; j < n; j++) {
      // 第一大于第二个就换
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }

    if (i !== minIndex) {
      swap(arr, i, minIndex);
    }
  }

  return arr;
}

// testSort(selectionSort);
measureSort(selectionSort);

export {};
